Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我将检查CodeFuller的响应。因此我必须返回AuthenticateResult.Success(票证),然后检查用户是否具有所需的角色?还想提供一个小示例吗?“因此我必须返回AuthenticateResult.success(ticket)”-是_C#_Asp.net_Asp.net Web Api_Asp.net Core_Asp.net Core 2.0 - Fatal编程技术网

C# 我将检查CodeFuller的响应。因此我必须返回AuthenticateResult.Success(票证),然后检查用户是否具有所需的角色?还想提供一个小示例吗?“因此我必须返回AuthenticateResult.success(ticket)”-是

C# 我将检查CodeFuller的响应。因此我必须返回AuthenticateResult.Success(票证),然后检查用户是否具有所需的角色?还想提供一个小示例吗?“因此我必须返回AuthenticateResult.success(ticket)”-是,c#,asp.net,asp.net-web-api,asp.net-core,asp.net-core-2.0,C#,Asp.net,Asp.net Web Api,Asp.net Core,Asp.net Core 2.0,我将检查CodeFuller的响应。因此我必须返回AuthenticateResult.Success(票证),然后检查用户是否具有所需的角色?还想提供一个小示例吗?“因此我必须返回AuthenticateResult.success(ticket)”-是的,正确。“然后检查用户是否具有所需角色”-此检查将由AuthorizeAttribute进行,您不必执行此检查。只需确保您为返回的主体正确设置了角色。关于身份验证处理程序的实现。您能告诉我如何填写票据吗?我对这一点很陌生。这取决于您将要使用的


我将检查CodeFuller的响应。

因此我必须返回AuthenticateResult.Success(票证),然后检查用户是否具有所需的角色?还想提供一个小示例吗?“因此我必须返回AuthenticateResult.success(ticket)”-是的,正确。“然后检查用户是否具有所需角色”-此检查将由
AuthorizeAttribute
进行,您不必执行此检查。只需确保您为返回的主体正确设置了角色。关于身份验证处理程序的实现。您能告诉我如何填写票据吗?我对这一点很陌生。这取决于您将要使用的身份验证提供程序。查看这组文章:它详细解释了基于声明的安全性。因此,我必须返回AuthenticateResult.Success(票证),然后检查用户是否具有所需的角色?还想提供一个小示例吗?“因此我必须返回AuthenticateResult.success(ticket)”-是的,正确。“然后检查用户是否具有所需角色”-此检查将由
AuthorizeAttribute
进行,您不必执行此检查。只需确保您为返回的主体正确设置了角色。关于身份验证处理程序的实现。您能告诉我如何填写票据吗?我对这一点很陌生。这取决于您将要使用的身份验证提供程序。查看这组文章:它详细解释了基于声明的安全性。
[Authorize(Roles="role")]
public class Auth : AuthenticationHandler<AuthOptions>
{
    //private static Models.flowerpowerContext context = new Models.flowerpowerContext
    private Token.AuthToken authToken;
    private readonly RequestDelegate _next;
    private Models.flowerpowerContext _context;

    public Auth(IOptionsMonitor<AuthOptions> options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock) : base(options, logger, encoder, clock)
    {
        DbContextOptions<Models.flowerpowerContext> _options = new DbContextOptions<Models.flowerpowerContext>();
        _context = new Models.flowerpowerContext(_options);
        string test = options.ToString();



        authToken = new Token.AuthToken(_context);
    }

    protected override async Task<AuthenticateResult> HandleAuthenticateAsync()
    {
        Models.Token _token = new Models.Token();
        Token.Hasher hasher = new Token.Hasher();

        var bearer = Request.Headers["Authorization"];
        string token = bearer.ToString();



        _token = JsonConvert.DeserializeObject<Models.Token>(hasher.DecodeHash(token));

        string id = "";

        return AuthenticateResult.NoResult();
    }
}
IList<Claim> claimCollection = new List<Claim>
{
     new Claim(ClaimTypes.Email, _token.TokenEmail),
     new Claim(ClaimTypes.Role, _token.TokenRole)
};
AuthenticationTicket ticket = new AuthenticationTicket(principal, "Custom scheme");
return AuthenticateResult.Success(ticket);
[Authorize(Roles = "Admin")]