[WinApi] RPC i RpcBindingSetAuthInfo

0

To znowu ja i moje problemy w programowaniu pod Windows;)
Więc chcę uruchomić przykładowy program z RPC ze stronki http://www.staff.amu.edu.pl/~ttomek/pzr/cwiczenia3.html. No i właśnie serwer się uruchamia elegancko ale klient po skompilowaniu i uruchomieniu wywala błąd przy funkcji RpcBindingSetAuthInfo.

/* Dane autoryzacji */
	AuthIdentity.User = USER;
	AuthIdentity.UserLength = (unsigned long) strlen(USER);
	AuthIdentity.Domain = DOMAIN;
	AuthIdentity.DomainLength = (unsigned long) strlen(DOMAIN);
	AuthIdentity.Password = PASSWORD;
	AuthIdentity.PasswordLength = (unsigned long) strlen(PASSWORD);
	AuthIdentity.Flags = SEC_WINNT_AUTH_IDENTITY_ANSI;
	/* Koniec danych autoryzacji */

	if (
		(retval=RpcBindingSetAuthInfo(minbazara_IfHandle,
		                      "localhost",
							  RPC_C_AUTHN_LEVEL_DEFAULT,
							  RPC_C_AUTHN_WINNT,
							  &AuthIdentity,	
							  RPC_C_AUTHN_WINNT)) != RPC_S_OK) {
		printf("Nie powiodlo sie ustalenie metody autoryzacji.\n");
		switch (retval) {
			case RPC_S_INVALID_BINDING:
				printf("Dowiazanie jest niepoprawne.\n");break;
			case RPC_S_UNKNOWN_AUTHN_SERVICE:
				printf("Nieznana usluga autoryzacji.\n");break;
			case RPC_S_WRONG_KIND_OF_BINDING:
				printf("Niewlasciwy typ dowiazania.\n");break;
			case RPC_S_UNKNOWN_AUTHN_SERVICE:
				printf("RPC_S_UNKNOWN_AUTHN_SERVICE.\n");break;

			default:
				printf("Nieznany blad: 0x%04x.\n",retval);break;
		}
		return 0;
	}

Dokładnie dokładnie, że "nieznany błąd: 0x000e". I teraz nie wiem nie jestem w żadnej domenie wiec mam #define DOMAIN "" hasła też nie mam to #define PASSWORD "" a użytkownik to na to taki ma być.
Co tu jest grane?

0

Dobra z tym błędem sobie poradziłem a wynikał on z mojej nieuwagi bo należy podać domenę lub grupę roboczą. No dobrze teraz się uruchamia wszystko świetnie ale jak chcę w wykonać zdalną procedurę to nagle wyskakuję okienko lubiane przez wszystkich "Wyślij raport o błędach". Ktoś próbował to uruchomić?

0

Uruchomiłem debugger no się okazało, że odmowa dostępu przy NdrSendReceive( (PMIDL_STUB_MESSAGE) &_StubMsg, (unsigned char *) _StubMsg.Buffer ); a funkcja ta znajduje się w wygenerowanym pliku klienta bazar_c.c i teraz coś mi się wydaje że trzeba w rejestrach grzebać:/ może ktoś się wypowie w końcu?

0

aha coś nie działa link bezpośrednio.. dlatego trzeba wejść http://www.staff.amu.edu.pl/~ttomek/pzr/ i tam wybrać ćwiczeni nr 3 i pobrać program o którym mowie:]

1 użytkowników online, w tym zalogowanych: 0, gości: 1