认证 – 支持个人用户帐户和组织帐户在MVC5 / ASP.Net身份2
|
我创建了一个ASP.Net MVC5应用程序,我已经通过Google,Facebook等配置(并且工作正常)个人用户帐户. 我想做的还是支持对Azure Active Directory(组织帐户)的身份验证.这将是内部员工能够以管理员身份登录到应用程序. 我发现的所有现有信息/指南/文档通常涉及使用一个或另一个.我们如何一起启用它们? 如果需要为每种类型的用户单独登录表单,这将不是一个问题. 编辑: 我在Azure Active Directory门户中查看应用程序配置,并注意到它们定义了“OAUTH 2.0授权端点”.可以在Startup.Auth.cs中配置MVC5来使用吗? 解决方法我设法通过执行以下操作来实现:首先,添加对Microsoft.Owin.Security.OpenIdConnect Nuget包的引用. 其次,在我的Startup.Auth.cs中进行配置: app.USEOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ClientId = "From the Azure Portal (see below)",Authority = "https://login.windows.net/<domain>.onmicrosoft.com",Notifications = new OpenIdConnectAuthenticationNotifications
{
RedirectToIdentityProvider = (ctx) =>
{
if (ctx.Request.Path.Value.EndsWith("ExternalLogin"))
{
string appBasePathUrl = ctx.Request.Scheme + "://" + ctx.Request.Host + ctx.Request.PathBase;
ctx.ProtocolMessage.RedirectUri = appBasePathUrl + "/";
ctx.ProtocolMessage.PostLogoutRedirectUri = appBasePathUrl;
}
else
{
ctx.State = NotificationResultState.Skipped;
ctx.HandleResponse();
}
return Task.FromResult(0);
}
},Description = new AuthenticationDescription
{
AuthenticationType = "OpenIdConnect",Caption = "SomeNameHere"
}
});
第三,我在Azure Portal(经典版)中设置了应用程序: 第四,我为管理员添加了一个单独的登录页面: @using (Html.BeginForm("ExternalLogin","Home"))
{
@Html.AntiForgeryToken()
<div class="ui basic segment">
<div class="ui list">
<div class="item">
<button type="submit" name="provider" value="OpenIdConnect" class="left floated huge ui button social">
<i class="windows icon"></i>
<span>My Org Name</span>
</button>
</div>
</div>
</div>
}
第五,ExternalLogin操作不需要改变 – 我们只是让OWIN中间件将我们重定向到外部登录页面.然后,流程将引导用户返回到ExternalLoginCallback操作. 最后,在ExternalLoginCallback操作中,我检查传入的声明以确定登录是通过Azure AD,而不是调用ASP.NET身份,我构建了我自己的ClaimsIdentity,它具有我所有的(应用程序特定的)声明信息,我的应用程序被认定为管理员用户. 现在,管理员用户导航到https://example.com/admin,单击登录按钮,将其重定向到Azure AD登录,并以管理员身份卷回应用程序. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何将流excel文件转换为数据表C#?
- asp.net – 如何从内容页面访问母版页控件
- asp.net-mvc – ASP.NET MVC使用自定义角色提供程序重定向到
- asp.net-mvc – 如何在razor中添加角度标签到html属性
- asp.net – 访问offsetParent时是否存在IE 6/7“未指定错误
- asp.net-mvc-3 – jQuery Mobile/MVC:使用RedirectToActio
- asp.net-mvc-4 – 捆绑从CDN提供的多个CSS?
- Azure中的ASP.NET会话状态提供程序[closed]
- asp.net-mvc – ASP.NET MVC视图模型的最佳做法
- .net – 当表中的数据发生变化时,SqlCacheDependency如何知
- asp.net-mvc-3 – asp.net mvc 3 razor从IEnumer
- asp.net:部分类和继承
- asp.net-mvc-4 – 在ASP.NET MVC中包文件位置
- asp.net-mvc – VIEWDATA和VIEWBAG存储在MVC中的
- 在IIS中零停机上传/回滚
- asp.net-mvc – 路由测试ASP.NET MVC4
- asp.net-web-api – 默认请求标头不接受任何值,它
- asp.net-mvc – MVC会话过期而不是身份验证
- asp.net-mvc – 从/到POCO对象的knockoutjs映射
- asp.net-core – ASP.NET Core App中project.jso
