0

我在我的 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"/>

谢谢。

4

1 回答 1

1

您可以将您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"]是答案

于 2013-05-09T10:45:23.047 回答