# 使用Asp.net Core的交互式应用程序
> OIDC:OpenID Connect协议
OpenID Connect是基于OAuth 2.0规范族的可互操作的身份验证协议。它使用简单的Rest/JSON消息流来实现,和之前任何一种身份认证协议相比开发者可以轻松集成。
OpenID Connect允许开发者验证跨网站和应用的用户,而无需拥有和管理密码文件。OIDC允许所有类型的客户,包括基于浏览器的JavaScript和本机移动应用程序,启动登录流程和接收可验证断言对登录用户的身份。
# 添加用户界面
.NET CLI(从`src/IdentityServer`文件夹内运行)
```bash
dotnet new is4ui
```
`startup.cs`您会发现`ConfigureServices`和`Configure`方法中的注释告诉您如何启用 MVC
启动项目后,看到如下页面
![image-20211110152456988](C:%5CUsers%5Cuton%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20211110152456988.png)
## 创建MVC客户端
从 src 文件夹运行:
~~~ bash
dotnet new mvc -n MvcClient
cd ..
dotnet sln add .\src\MvcClient\MvcClient.csproj
~~~
> 我们建议通过 IIS Express 使用自托管选项。其余文档假设您在端口 5002 上使用自托管。
要向 MVC 应用程序添加对 OpenID Connect 身份验证的支持,您首先需要将包含 OpenID Connect 处理程序的 nuget 包添加到您的项目中,例如:
~~~ bash
dotnet add package Microsoft.AspNetCore.Authentication.OpenIdConnect -v 3.1
~~~
添加以下内容`ConfigureServices`中`Startup`
~~~ c#
using System.IdentityModel.Tokens.Jwt;
// ...
JwtSecurityTokenHandler.DefaultMapInboundClaims = false;
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
options.Authority = "https://localhost:5001";
options.ClientId = "mvc";
options.ClientSecret = "secret";
options.ResponseType = "code";
options.SaveTokens = true;
});
~~~