我正在编写一个示例应用程序。利用 OWIN 和 UseCookieAuthentication
。后者接受 CookieAuthenticationOptions
,它具有 LogoutPath
属性。此属性具有以下关联注释:
但是,我无法弄清楚这是否有任何作用,或者它是否只是代表您的代码将执行某些操作的隐式约定。例如,如果我利用 AuthenticationManager.SignOut()
,我希望 logout-path 端点会被调用。
最佳答案
查看 Microsoft.Owin.Security
的反编译代码,如果指定了 LogOutPath ,它会尝试执行重定向。它将重定向到查询字符串中的 returnUrl 参数。所以再总结一下。
有用的功能可能是,您注销并希望重定向回现在对匿名用户具有降级功能的同一页面。
bool shouldLoginRedirect = num1 != 0;
int num2;
if (shouldSignout)
{
PathString logoutPath = this.get_Options().LogoutPath;
// ISSUE: explicit reference operation
if (((PathString) @logoutPath).get_HasValue())
{
num2 = PathString.op_Equality(((AuthenticationHandler) this).get_Request().get_Path(), this.get_Options().LogoutPath) ? 1 : 0;
goto label_22;
}
}
num2 = 0;
label_22:
bool shouldLogoutRedirect = num2 != 0;
if ((shouldLoginRedirect || shouldLogoutRedirect) && ((AuthenticationHandler) this).get_Response().get_StatusCode() == 200)
{
string str = ((AuthenticationHandler) this).get_Request().get_Query().Get(this.get_Options().ReturnUrlParameter);
if (!string.IsNullOrWhiteSpace(str) && CookieAuthenticationHandler.IsHostRelative(str))
this.get_Options().Provider.ApplyRedirect(new CookieApplyRedirectContext(((AuthenticationHandler) this).get_Context(), this.get_Options(), str));
}
}
关于c# - LogoutPath 有什么作用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29785252/