如何在覆盖UserNamePasswordValidator时传递连接字符串
本文关键字:连接 字符串 UserNamePasswordValidator 覆盖 | 更新日期: 2023-09-27 18:12:54
我在WCF服务中重写UserNamePasswordValidator,我想对SQL数据库验证用户名和密码。是否有任何方式将连接字符串传递到PasswordValidator类?我还应该提到,我的类是在一个独立的主WCF服务。
public class MyCustomUserNameValidator : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
//TODO: how to pass in connection string??
connectionString = "Data Source=MyDataSource;Initial Catalog=MyCatalog;User ID=MyUserName;Password=MyPassword";
// connect to database and validate crendentials...
if (!valid)
{
throw new SecurityTokenException("Access Denied.");
}
}
}
配置部分:
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="MyCompany.Services.Validation.MyCustomUserNameValidator, MyCompany.Services.Validation"/>
谢谢。
您可以将connectionString
存储在<appsettings>
中的配置文件
<addkey="DbConnection" value ="Your Connection String"/>
和
在MyCustomUserNameValidator
中使用类
ConnectionString = ConfigurationSettings.WebConfig["DbConnection"].ToString();
*编辑: ConfigurationManager does actually read from the web.config. the exact solution was: ConfigurationManager.AppSettings["ConnectionString"]
是答案