我正在创建一个新的ASP。在Visual Studio 2015 RC中基于Owin和Katana的。NET 5.0网站。我想这个网站的身份验证使用Windows Azure活动目录。
在Visual Studio 2013中,我可以为此选择Organizational Accounts。向导允许我将URL添加到我的Azure Active Directory中,然后一切就绪。然而,在Visual Studio 2015中,我所看到的只是无身份验证和个人身份验证。那么如何配置组织身份验证呢?
编辑1:
如果我使用这些模板之一,我看到一个Configure方法:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
这个方法只能访问microt.aspnet . builder . iapplicationbuilder实例而不能访问Owin。IAppBuilder实例,该实例用于以下方法调用
app.UseWindowsAzureActiveDirectoryBearerAuthentication()
下面的链接表明这是故意的。
http://blogs.msdn.com/b/webdev/archive/2014/11/14/katana-asp-net-5-and-bridging-the-gap.aspx
文章进一步指出了以下链接,该链接包含代码(由Thinktecture编写),该代码接受IApplicationBuilder并根据需要返回IAppBuilder:
https://github.com/aspnet/Entropy/blob/dev/samples/Owin.IAppBuilderBridge/KAppBuilderExtensions.cs
我唯一不能从这个示例中弄清楚的是如何注册IDataProtectionProvider所需的以下代码行:
var provider = app.ApplicationServices.GetRequiredService<IDataProtectionProvider>();
有人能帮我一下吗? 最简单的方法是选择'No authentication'并手动添加必要的NuGet包:
- Microsoft.IdentityModel.Protocol.Extensions
- System.IdentityModel.Tokens.Jwt
- Microsoft.Owin.Security.OpenIdConnect
- Microsoft.Owin.Security.Cookies
- Microsoft.Owin.Host.SystemWeb
然后使用以下方法添加Startup.Auth.cs文件:
public partial class Startup
{
//...
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(
CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri);
});
}
请参阅Github上的Azure AD示例获取更详细的说明。