SqlMembershipProvider 其中IIS 和SQL 位于不同的机器上?
我们正在将我的一个网站投入生产。由于防火墙以及网站和数据库位于不同的机器上,网站无法直接连接到SQL服务器。我们已对其进行设置,以便通过 WCF 服务运行所有数据库访问。所有这些都运行良好。
然而,我发现问题出在 AspNetSqlProvider 中。除了为您的网站设置提供程序之外,我对提供程序不太熟悉,但根据我收集的信息,您向提供程序对象传递一个连接字符串,它会自动处理您网站的 ASP.NET 帐户。我无法在生产中使用此功能,但是,正如我所说,网站和数据库无法互相看到,并且 IIS 和数据库的自动链接将无法工作。
根据此主题判断,这不是一个原始的概念/问题。不过我已经研究了几天了,但没有发现任何有用的东西。我确实找到了一两篇文章,其中说明了如何创建新的继承的 MembershipProvider 类并重写所有方法。不过,这是一项繁重的工作,而且我认为如此复杂的问题也无法得到解决。
当 IIS 和数据库位于不同的计算机上时,如何设置 AspNetSqlProvider?有没有办法通过 wcf 服务或其他对象运行 AspNetSqlProvider,这样它就不会直接连接到 SQL 服务器?
提前致谢!
We're moving one of my websites to production. Because of a firewall and the website and database being on different machines, the website can't connect directly to the SQL server. We've set it up so we're running all of the database access through a WCF service. All of this works fine.
The problem, however, I've discovered lies in the AspNetSqlProvider. I'm not too familiar with providers other than setting it up for your site, but from what I gather, you pass the provider object a connection string and it automatically handles ASP.NET accounts for your website. I can't have this on production, however, as I stated, the website and database can't see each other and the automatic linking of the IIS and database won't work.
Judging by this topic, this is not an original concept/issue. I've been researching it for a couple days, though, and haven't found anything helpful. I did find one or two articles which illustrated how to create a new inherited MembershipProvider class and override all of the methods. This is a TON of work, though, and I can't see the resolution to an issue I believe to be common being so involved.
How can you setup the AspNetSqlProvider when the IIS and database are on different machines? Is there a way to run the AspNetSqlProvider through a wcf service or other object so it doesn't connect directly to a SQL server?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以围绕此服务包装自定义会员资格提供程序。需要牢记的一点是保护端点!确保端点安全!
使用证书或 AD 或任何和 SSL,因为您将通过线路传递用户凭据。
我没有测试此类中的每个方法,但以前的实现表现得很好,因此它最终可能会让您到达您需要去的地方。
确保端点安全!
编辑:必须删除注释以适应。
ps 确保此端点的安全!
You can wrap a custom membership provider around this service. Something to keep well in mind is securing the endpoint! SECURE THE ENDPOINT!
Use certificates or AD or whatever AND SSL as you will be passing users credentials over the wire.
I have not tested every method in this class but previous implementations performed just fine so it will probably get you to where you need to go, eventurally.
SECURE THE ENDPOINT!
EDIT: had to remove comments to fit.
p.s. SECURE THIS ENDPOINT!