我有几个问题关于如何使用MVC asp.net进行身份验证/授权。C#MVC身份验证与WCF身份验证服务..几个问题
我有一堆的WCF服务,通过在每个请求上传递用户名和密码(我使用HttpModule进行验证,并在WCF中捕获身份验证事件)来验证/授权用户。它在该HttpModule中使用aspnet成员资格来验证用户,并设置Principal,以便我可以在我的服务上拥有角色(这些服务共享给我们的各种客户端,所以我需要保持这种工作方式)。
现在我想创建一个能够调用这些服务的MVC项目,但我不想在会话中保存用户名和密码并将其传递给每个请求。
我有一个场景,如果有人可以请帮我!
我打开WCF在WCF服务层提供的AuthenticationService。
在我的MVC项目中,我添加了表单身份验证,并使用authorize属性修饰了我的方法,如果我没有授权,它将把我重定向到登录页面。
在登录页面中,当用户给出他/她的用户名和密码时,我调用WCF AuthenticationService登录我的用户。然后,我从中检索身份验证令牌并将其存储在我的会话中。
下一次我想在我的服务层上调用WCF服务时,我检索该令牌并将其添加到我的请求的标头中。
在那个验证我在服务端用户的HTTP模块,我检查其有效令牌OR如果一个有效的用户名和密码(以方便别人调用这些Web服务)。
如果是,它接受请求,并返回正确的数据..
这个问题似乎像处理这个正确的方式?
任何帮助非常感谢。:/ 在此先感谢! Neil
这真是奇怪的做法。将用户名/密码传递给每一个请求都很麻烦,而且你松了一些灵活性。您是否有任何重要的要求试图用您的方法来实现,或者您只是不知道如何以其他方式做到这一点? –
我们提供的一些服务是基于SAP的系统,我不认为它们能够处理基于令牌的身份验证。这就是我这样做的原因。我不觉得这是一个坏主意吗?所有基于REST的服务都不是无状态的吗? –
如果这是一个糟糕的问题,你能否提供另一种解决方案?没有太多的WCF知识是很难的。 –