【发布时间】:2018-06-15 00:46:21
【问题描述】:
我正在使用 OWIN 通过 ASP.NET MVC 应用程序中的 Microsoft Graph API 连接到 O365。一切都在 Startup.Auth.cs 中设置,包括当前来自 web.config 的 Redirect Uri 值。身份验证工作正常。
由于我在应用注册中使用通配符,重定向 uri 可以是多种值,并且用户可以从应用中的任意数量的页面向 O365 进行身份验证。一旦通过身份验证,我希望将它们带回他们刚刚所在的页面,但由于重定向 uri 已经设置,它们将被带回该页面。
在创建 OWIN 身份上下文之后,如何在我的代码的其他位置修改重定向 uri?
下面是启动代码的sn-p。
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
private static string redirectUri = ConfigurationManager.AppSettings["ida:RedirectUri"];
....
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = appId,
Authority = "https://login.microsoftonline.com/organizations/v2.0",
PostLogoutRedirectUri = redirectUri,
RedirectUri = redirectUri,
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthorizationCodeReceived = async (context) =>
{
Dictionary<string, string> data = new Dictionary<string, string>();
data.Add("client_id", appId);
data.Add("client_secret", appSecret);
data.Add("code", code);
data.Add("grant_type", "authorization_code");
data.Add("redirect_uri", redirectUri);
...
【问题讨论】:
标签: c# asp.net-mvc owin