我有一个 wcf webhttp 服务,它使用表单例份验证来对用户进行身份验证。如果票证位于 cookie 集合或 url 中,则此方法可以正常工作。
但现在我想在自定义 http header 中发送表单例份验证票证的字符串,并更改表单例份验证模块以检查该 header 而不是 cookie。
我认为扩展表单例份验证来实现这一点应该很容易,但找不到任何有关如何实现的资源。你能指出我正确的方向吗?
这是我的身份验证流程的工作原理,
- 客户端使用用户名和密码调用身份验证方法
- 服务返回加密的票证字符串
- 客户端在每个后续请求的 http header 中发送收到的票证字符串
- 服务检查身份验证 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/