| Home | Libraries | People | FAQ | More

##### url::set_userinfo

Set the userinfo.

###### Synopsis

    url&
    set_userinfo(
        core::string_view s);

###### Description

The userinfo is set to the given string, which may contain percent-escapes. Any special or reserved characters in the string are automatically percent-encoded. The effects on the user and password depend on the presence of a colon (':') in the string:

- If an unescaped colon exists, the characters up to the colon become the user and the rest of the characters after the colon become the password. In this case `has_password` returns true. Otherwise,
- If there is no colon, the user is set to the string. The function `has_password` returns false.

###### Remarks

The interpretation of the userinfo as individual user and password components is scheme-dependent. Transmitting passwords in URLs is deprecated.

###### Example

    assert( url( "http://example.com" ).set_userinfo( "user:pass" ).encoded_user() == "user" );

###### Complexity

Linear in `this->size() + s.size()`.

###### Exception Safety

Strong guarantee. Calls to allocate may throw.

###### Parameters

Name | Description
--- | ---
`s` | The string to set.

###### BNF

    userinfo      = [ [ user ] [ ':' password ] ]

    user          = *( unreserved / pct-encoded / sub-delims )
    password      = *( unreserved / pct-encoded / sub-delims / ":" )

###### Specification

- 3.2.1. User Information (rfc3986)

###### See Also

`remove_userinfo`, /root/project/libs/url/include/boost/url/url.hpp