如何在asp.net中创建具有用户名和密码的wcf web服务?

时间:2013-04-04 06:24:47

标签: c# asp.net wcf web-services

我想在wcf web service中创建usernamepassword的{​​{1}}。因此,通过提供该用户名和密码,我们可以使用任何网络方法。我有已经创建了wcf Web服务,但我想在Web服务中添加用户名和密码。

提前感谢。

1 个答案:

答案 0 :(得分:0)

以下是实现您所要求的所需步骤:

1)使用Visual Studio的“新项目”界面创建一个新的WCF项目:最终将有两个主要文件: Service1.svc (代码文件)和 IService1.cs (界面文件)。

2)打开 IService1.cs 文件,并按如下方式定义您的方法:

[ServiceContract]
public interface IService1
{
    [...]

    // TODO: Add your service operations here

    [OperationContract]
    string GetToken(string userName, string password);
}

3)打开 Service1.cs 文件,并按以下方式添加方法的实现:

/// <summary>
/// Retrieve a non-permanent token to be used for any subsequent WS call.
/// </summary>
/// <param name="userName">a valid userName</param>
/// <param name="password">the corresponding password</param>
/// <returns>a GUID if authentication succeeds, or string.Empty if something goes wrong</returns>
public string GetToken(string userName, string password)
{
    // TODO: replace the following sample with an actual auth logic
    if (userName == "testUser" && password == "testPassword")
    {
        // Authentication Successful
        return Guid.NewGuid().ToString();
    }
    else
    {
        // Authentication Failed
        return string.Empty;
    }
}

基本上就是这样。您可以使用此技术检索(过期和安全)令牌以用于任何后续调用 - 这是最常见的行为 - 或在您的所有方法中实施用户名/密码策略:这完全是您的呼叫。

要测试新服务,您可以在调试模式中启动MVC项目并使用内置的 WCF测试工具:您必须输入示例值上面指定的( testUser testPassword ),除非您更改它们。

有关此特定主题和其他实施示例的更多信息,您还可以在我的博客上read this post