我有一个为客户端构建的 ASP.NET Web 应用程序,该应用程序默认使用 ASP.NET 表单例份验证。他们现在要求一个桌面 (WinForms) 应用程序“与”Web 应用程序一起工作。我已经创建了网络服务来访问他们想要从网络应用程序获取的数据并将其放入桌面应用程序。这很好..但需要基于已存储在 asp.net 应用程序中的角色的相同级别的安全性和数据访问。
现在是时候让身份验证跨两个应用程序工作了。 我想通过在用户首次打开 WinForms 应用程序时提示登录来利用 asp.net 身份验证,并可能调用 Web 服务来对用户进行身份验证、获取用户角色和配置文件。
我确定这已经完成或询问了......我只是没有在 SO 中找到问题/答案。
最佳答案
首先:将 WCF 用于您的 Web 服务。这是一个比旧的 ASMX 服务更好的框架。
第二:WCF 可以使用您的 ASP.NET 应用程序使用的相同 RoleProvider 和 MembershipProvider 类。这是一个简单的配置开关。同时使用它们,您的 Web 服务需要与 Web 应用程序相同的凭据。
然后……差不多就是这些了。
有关详细信息,请参阅:
关于c# - Web 和 Winforms 的 .Net 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1172069/