gpt4 book ai didi

c# - 获得授权属性的许可?

转载 作者:行者123 更新时间:2023-11-30 16:35:18 25 4
gpt4 key购买 nike

我已经实现了我自己的 Authorize 属性,我注意到当我使用 [Authorize] 时它会查询以检查权限。

有什么方法可以获得该权限并在应用 Authorize 属性的当前 Controller 中使用它,而无需重写和重新查询 Controller 中的代码?

最佳答案

是的,你可以。如果您将 Authorize 属性实现为 ActionFilterAttribute,则可以使用 ViewData 集合来存储如下信息:

    public class RequireRegistrationActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpRequestBase request = filterContext.HttpContext.Request;
HttpResponseBase response = filterContext.HttpContext.Response;

if (request != null &&
response != null)
{
bool isAuthenticated = request.IsAuthenticated;
filterContext.Controller.ViewData["IsAuthenticated"] = isAuthenticated;

if (!isAuthenticated)
{
string url = String.Format(
"/?ReturnUrl={0}",
HttpUtility.UrlEncode(request.Url.ToString()));
response.Redirect(url);
}
}
}
}

在注释 Controller 的 acrion 中,您可以通过以下方式访问该字段:

bool isAuthenticated = (bool)(ViewData["IsAuthenticated"] ?? false);

关于c# - 获得授权属性的许可?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1938835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com