下面是一个使用ASP.NET MVC 5进行Microsoft Office 365身份验证的解决方案,包含代码示例:
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = ConfigurationManager.AppSettings["ida:ClientId"],
Authority = String.Format(ConfigurationManager.AppSettings["ida:AADInstance"], ConfigurationManager.AppSettings["ida:Tenant"]),
PostLogoutRedirectUri = ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"]
});
using Microsoft.Owin.Security;
using Microsoft.Owin.Security.OpenIdConnect;
using System.Web;
using System.Web.Mvc;
namespace YourNamespace.Controllers
{
public class AccountController : Controller
{
public void SignIn()
{
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
public void SignOut()
{
HttpContext.GetOwinContext().Authentication.SignOut(
OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType);
}
}
}
@{
ViewBag.Title = "Home Page";
}
@if (Request.IsAuthenticated)
{
Welcome, @User.Identity.Name
Sign Out
}
else
{
Welcome, Guest
Sign In
}
现在,当用户访问网站时,他们将被重定向到Microsoft Office 365登录页面进行身份验证。一旦身份验证成功,他们将被重定向回网站,并显示其用户名。用户可以通过单击“Sign Out”链接注销。
请确保将步骤2中的配置值替换为您自己的Microsoft Office 365应用程序的相关值。此外,还可以根据需要自定义视图和控制器。