对Web服务VB.Net进行身份验证

时间:2014-08-20 14:32:09

标签: vb.net web-services authentication

您好我正在尝试对我的网络服务进行身份验证并遗漏了某些内容..

我的服务参考被称为 - MBSDKServiceLD 我的Web参考被称为 - LANDeskMBSDK

我在Visual Studio 2013中连接这些并且正在解析代码中的方法

以下是我的身份验证代码,但不完整..

Option Explicit On
Imports System.Net

Dim objFSO As Object
Dim objExec As Object
Dim objNetwork As Object
Dim strComputer As String
Dim strUser As String
Dim User As String
Dim Password As String
Dim Domain As String
Dim URL As String
Dim Cred As String

Dim strTaskName As String
Dim strPackageName As String
Dim strDeliveryMethod As String
Dim strCustomGroup As String

Dim boolStartNow As Boolean
Dim WakeUpMachines As Boolean
Dim boolCommonTask As Boolean

Dim strAutoSync As String
Dim TaskID As String

Dim strConnection As New System.Data.SqlClient.SqlConnection
Dim LDWebService
Dim intTaskID As String
Dim LDService As Object

Dim strDeviceName As String

Sub RunLANDeskTask(ByVal sender As Object, ByVal LDService As MBSDKServiceLD.MBSDKSoap)



End Sub

Sub CreateTask

    User = "username1"
    Password = "password1"
    Domain = "domain1"

    URL = "http://myserver/MBSDKService/MsgSDK.asmx?WSDL"
    Dim MyCredentails As New System.Net.CredentialCache()
    Dim NetCred As New System.Net.NetworkCredential(User, Password, Domain)
    MyCredentails.Add(New Uri(URL), "Basic", NetCred)

strPackageName = "Adobe Acrobat XI PRO"
    strDeliveryMethod = "Standard push distribution"

    Dim strTargetDevice As String
    strTargetDevice = Nothing

    strTaskName = strPackageName & " - " & DateTime.Now & " -Provisioning Task for" & "   " & strComputer

    Try
        RunLANDeskTask(LANDeskMBSDK, LDService.CreateTask(strTaskName,   strDeliveryMethod, strPackageName, False, False, strAutoSync).TaskID)
    Catch ex As Exception
        MsgBox("Error creating task")

    End Try
End Sub

这一部分发生了什么或我完全错了?

当我输入LDService时。我看到所有的方法,所以我连接到VS中的引用,但没有进行身份验证。

2 个答案:

答案 0 :(得分:0)

它应该真的如此简单(对不起它在c#中):

MyWebService svc = new MyWebService();            
svc.Credentials = new System.Net.NetworkCredential(UserID, pwd);
bool result = svc.MyWebMethod();

以下内容可能会有所帮助:

This is quite old, but the comments are good.

我刚刚在MSDN找到了以下内容,看起来就像你想要的那样:

localhost.Sample svc = new localhost.Sample();
try {
CredentialCache credCache = new CredentialCache();
NetworkCredential netCred = 
    new NetworkCredential( "Example", "Test$123", "sseely2" );
credCache.Add( new Uri(svc.Url), "Basic", netCred );
svc.Credentials = credCache;

答案 1 :(得分:0)

好的,我有这个工作......但我必须在可以访问Web服务的帐户下运行代码 -

    Dim URL As String = "http://server/MBSDKService/MsgSDK.asmx?WSDL"
    Dim myService As New LANDeskMBDSK.MBSDK
    myService.Url = URL

    Dim CredCache As New System.Net.CredentialCache
    CredCache.Add(New Uri(myService.Url), "Basic", Cred)

    myService.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials