asp.net - 扩展表单例份验证以使用自定义 http header 作为票证

标签 asp.net forms-authentication webhttp

我有一个 wcf webhttp 服务,它使用表单例份验证来对用户进行身份验证。如果票证位于 cookie 集合或 url 中,则此方法可以正常工作。

但现在我想在自定义 http header 中发送表单例份验证票证的字符串,并更改表单例份验证模块以检查该 header 而不是 cookie。

我认为扩展表单例份验证来实现这一点应该很容易,但找不到任何有关如何实现的资源。你能指出我正确的方向吗?

这是我的身份验证流程的工作原理,

  1. 客户端使用用户名和密码调用身份验证方法
  2. 服务返回加密的票证字符串
  3. 客户端在每个后续请求的 http header 中发送收到的票证字符串
  4. 服务检查身份验证 header 并验证身份验证票证

最佳答案

FormAuthentication 模块不可扩展,但您可以编写自己的身份验证。 非常简单:

身份验证(2):


var formsTicket = new FormsAuthenticationTicket(
    1, login, DateTime.Now, DateTime.Now.AddYears(1), persistent, String.Empty);
var encryptedFormsTicket = FormsAuthentication.Encrypt(formsTicket);
//return encryptedFormsTicket string to client

附票的服务电话(4):


var ticket = FormsAuthentication.Decrypt(encryptedFormsTicket)
//extract authentication info from ticket: ticket.Name

关于asp.net - 扩展表单例份验证以使用自定义 http header 作为票证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10022246/

相关文章:

asp.net - 是否可以根据用户在 MVC 应用程序(html 菜单列表)中的角色隐藏菜单项?

c# - HttpHandler 被忽略以支持路由

asp.net - 将所有错误扔到Global.asax的Application_Error处理程序中

asp.net - 使用带有重写 URL 的表单例份验证/授权

wcf webhttp 认证

asp.net - ASP.NET 中的异步和同步回发

sql - 在 Java 中的 SQL Azure 报告上进行表单例份验证登录

asp.net - <machineKey解密 key ="AutoGenerate"...被IIS忽略。不会使之前 session 的 cookie 失效

使用 ssl (https) 的 POST 的 WCF 问题