c# - Web 和 Winforms 的 .Net 身份验证

标签 c# .net asp.net winforms authentication

我有一个为客户端构建的 ASP.NET Web 应用程序,该应用程序默认使用 ASP.NET 表单例份验证。他们现在要求一个桌面 (WinForms) 应用程序“与”Web 应用程序一起工作。我已经创建了网络服务来访问他们想要从网络应用程序获取的数据并将其放入桌面应用程序。这很好..但需要基于已存储在 asp.net 应用程序中的角色的相同级别的安全性和数据访问。

现在是时候让身份验证跨两个应用程序工作了。 我想通过在用户首次打开 WinForms 应用程序时提示登录来利用 asp.net 身份验证,并可能调用 Web 服务来对用户进行身份验证、获取用户角色和配置文件。

我确定这已经完成或询问了......我只是没有在 SO 中找到问题/答案。

最佳答案

首先:将 WCF 用于您的 Web 服务。这是一个比旧的 ASMX 服务更好的框架。

第二:WCF 可以使用您的 ASP.NET 应用程序使用的相同 RoleProvider 和 MembershipProvider 类。这是一个简单的配置开关。同时使用它们,您的 Web 服务需要与 Web 应用程序相同的凭据。

然后……差不多就是这些了。

有关详细信息,请参阅:

Implementing a Role Provider

Implementing a Membership Provider

How to: Use the ASP.NET Membership Provider

关于c# - Web 和 Winforms 的 .Net 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1172069/

相关文章:

c# - 针对特定 EF Core 查询优化未知

c# - Entity Framework 一对多查询

asp.net - 我可以使用多个 DNX 版本吗?

asp.net - HTTPS 与 Visual Studio 的内置 ASP.NET 开发服务器

c# - 帮助进行字节移位

c# - ASP 网络-C# : Access controls by Id

c# - 如何判断我的应用程序是作为 32 位还是 64 位应用程序运行?

.net - 如何判断DataRow中是否存在某列?

c# - 将 XmlSerializerFormat 用于 WCF 服务时如何避免换行?

.net - 供应商特定的MIME作为传入WCF REST POST请求中的Content-Type(例如application/vnd.company + xml)