xref: /aosp_15_r20/external/curl/docs/libcurl/opts/CURLOPT_USERNAME.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker---
2*6236dae4SAndroid Build Coastguard Workerc: Copyright (C) Daniel Stenberg, <[email protected]>, et al.
3*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl
4*6236dae4SAndroid Build Coastguard WorkerTitle: CURLOPT_USERNAME
5*6236dae4SAndroid Build Coastguard WorkerSection: 3
6*6236dae4SAndroid Build Coastguard WorkerSource: libcurl
7*6236dae4SAndroid Build Coastguard WorkerSee-also:
8*6236dae4SAndroid Build Coastguard Worker  - CURLOPT_HTTPAUTH (3)
9*6236dae4SAndroid Build Coastguard Worker  - CURLOPT_PASSWORD (3)
10*6236dae4SAndroid Build Coastguard Worker  - CURLOPT_PROXYAUTH (3)
11*6236dae4SAndroid Build Coastguard Worker  - CURLOPT_USERPWD (3)
12*6236dae4SAndroid Build Coastguard WorkerProtocol:
13*6236dae4SAndroid Build Coastguard Worker  - All
14*6236dae4SAndroid Build Coastguard WorkerAdded-in: 7.19.1
15*6236dae4SAndroid Build Coastguard Worker---
16*6236dae4SAndroid Build Coastguard Worker
17*6236dae4SAndroid Build Coastguard Worker# NAME
18*6236dae4SAndroid Build Coastguard Worker
19*6236dae4SAndroid Build Coastguard WorkerCURLOPT_USERNAME - username to use in authentication
20*6236dae4SAndroid Build Coastguard Worker
21*6236dae4SAndroid Build Coastguard Worker# SYNOPSIS
22*6236dae4SAndroid Build Coastguard Worker
23*6236dae4SAndroid Build Coastguard Worker~~~c
24*6236dae4SAndroid Build Coastguard Worker#include <curl/curl.h>
25*6236dae4SAndroid Build Coastguard Worker
26*6236dae4SAndroid Build Coastguard WorkerCURLcode curl_easy_setopt(CURL *handle, CURLOPT_USERNAME,
27*6236dae4SAndroid Build Coastguard Worker                          char *username);
28*6236dae4SAndroid Build Coastguard Worker~~~
29*6236dae4SAndroid Build Coastguard Worker
30*6236dae4SAndroid Build Coastguard Worker# DESCRIPTION
31*6236dae4SAndroid Build Coastguard Worker
32*6236dae4SAndroid Build Coastguard WorkerPass a char pointer as parameter, which should be pointing to the
33*6236dae4SAndroid Build Coastguard Workernull-terminated username to use for the transfer.
34*6236dae4SAndroid Build Coastguard Worker
35*6236dae4SAndroid Build Coastguard WorkerCURLOPT_USERNAME(3) sets the username to be used in protocol
36*6236dae4SAndroid Build Coastguard Workerauthentication. You should not use this option together with the (older)
37*6236dae4SAndroid Build Coastguard WorkerCURLOPT_USERPWD(3) option.
38*6236dae4SAndroid Build Coastguard Worker
39*6236dae4SAndroid Build Coastguard WorkerWhen using Kerberos V5 authentication with a Windows based server, you should
40*6236dae4SAndroid Build Coastguard Workerinclude the domain name in order for the server to successfully obtain a
41*6236dae4SAndroid Build Coastguard WorkerKerberos Ticket. If you do not then the initial part of the authentication
42*6236dae4SAndroid Build Coastguard Workerhandshake may fail.
43*6236dae4SAndroid Build Coastguard Worker
44*6236dae4SAndroid Build Coastguard WorkerWhen using NTLM, the username can be specified simply as the username without
45*6236dae4SAndroid Build Coastguard Workerthe domain name should the server be part of a single domain and forest.
46*6236dae4SAndroid Build Coastguard Worker
47*6236dae4SAndroid Build Coastguard WorkerTo include the domain name use either Down-Level Logon Name or UPN (User
48*6236dae4SAndroid Build Coastguard WorkerPrincipal Name) formats. For example, **EXAMPLE\user** and
49*6236dae4SAndroid Build Coastguard Worker**[email protected]** respectively.
50*6236dae4SAndroid Build Coastguard Worker
51*6236dae4SAndroid Build Coastguard WorkerSome HTTP servers (on Windows) support inclusion of the domain for Basic
52*6236dae4SAndroid Build Coastguard Workerauthentication as well.
53*6236dae4SAndroid Build Coastguard Worker
54*6236dae4SAndroid Build Coastguard WorkerTo specify the password and login options, along with the username, use the
55*6236dae4SAndroid Build Coastguard WorkerCURLOPT_PASSWORD(3) and CURLOPT_LOGIN_OPTIONS(3) options.
56*6236dae4SAndroid Build Coastguard Worker
57*6236dae4SAndroid Build Coastguard WorkerThe application does not have to keep the string around after setting this
58*6236dae4SAndroid Build Coastguard Workeroption.
59*6236dae4SAndroid Build Coastguard Worker
60*6236dae4SAndroid Build Coastguard Worker# DEFAULT
61*6236dae4SAndroid Build Coastguard Worker
62*6236dae4SAndroid Build Coastguard Workerblank
63*6236dae4SAndroid Build Coastguard Worker
64*6236dae4SAndroid Build Coastguard Worker# %PROTOCOLS%
65*6236dae4SAndroid Build Coastguard Worker
66*6236dae4SAndroid Build Coastguard Worker# EXAMPLE
67*6236dae4SAndroid Build Coastguard Worker
68*6236dae4SAndroid Build Coastguard Worker~~~c
69*6236dae4SAndroid Build Coastguard Workerint main(void)
70*6236dae4SAndroid Build Coastguard Worker{
71*6236dae4SAndroid Build Coastguard Worker  CURL *curl = curl_easy_init();
72*6236dae4SAndroid Build Coastguard Worker  if(curl) {
73*6236dae4SAndroid Build Coastguard Worker    CURLcode res;
74*6236dae4SAndroid Build Coastguard Worker    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin");
75*6236dae4SAndroid Build Coastguard Worker
76*6236dae4SAndroid Build Coastguard Worker    curl_easy_setopt(curl, CURLOPT_USERNAME, "clark");
77*6236dae4SAndroid Build Coastguard Worker
78*6236dae4SAndroid Build Coastguard Worker    res = curl_easy_perform(curl);
79*6236dae4SAndroid Build Coastguard Worker
80*6236dae4SAndroid Build Coastguard Worker    curl_easy_cleanup(curl);
81*6236dae4SAndroid Build Coastguard Worker  }
82*6236dae4SAndroid Build Coastguard Worker}
83*6236dae4SAndroid Build Coastguard Worker~~~
84*6236dae4SAndroid Build Coastguard Worker
85*6236dae4SAndroid Build Coastguard Worker# %AVAILABILITY%
86*6236dae4SAndroid Build Coastguard Worker
87*6236dae4SAndroid Build Coastguard Worker# RETURN VALUE
88*6236dae4SAndroid Build Coastguard Worker
89*6236dae4SAndroid Build Coastguard WorkerReturns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
90*6236dae4SAndroid Build Coastguard WorkerCURLE_OUT_OF_MEMORY if there was insufficient heap space.
91