[#boost-urls-static_url-set_userinfo] = xref:boost.adoc[boost]::xref:boost/urls.adoc[urls]::xref:boost/urls/static_url.adoc[static_url]::set_userinfo :relfileprefix: ../../../ :mrdocs: Set the userinfo == Synopsis Declared in `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/static_url.hpp#L359[boost/url/static_url.hpp]>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:boost/urls/static_url.adoc[static_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. [NOTE] The interpretation of the userinfo as individual user and password components is scheme‐dependent. Transmitting passwords in URLs is deprecated. == Example [,cpp] ---- 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. == BNF [,cpp] ---- userinfo = [ [ user ] [ ':' password ] ] user = *( unreserved / pct-encoded / sub-delims ) password = *( unreserved / pct-encoded / sub-delims / ":" ) ---- == Specification * https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1[] == Return Value `*this` == Parameters [cols=2] |=== | Name | Description | *s* | The string to set. |=== == See Also xref:boost/urls/static_url/remove_userinfo.adoc[`remove_userinfo`], xref:boost/urls/static_url/set_encoded_userinfo.adoc[`set_encoded_userinfo`]. [.small]#Created with https://www.mrdocs.com[MrDocs]#